Voici des techniques pour réduire l'espace disque nécessaire à la création de FreeCAD sous Windows. Ceci peut être utile à ceux qui sont limités par l'espace disque (par exemple, à cause d'un SSD) et à ceux qui veulent éviter d'installer complètement Visual Studio.
Il est recommandé de savoir, en pratique, comment Compiler sous Windows avec Qt Creator avant d'essayer ceci.
Conditions requises :
0. Pour obtenir les fichiers du compilateur, allez sur un autre ordinateur et localisez le compilateur utilisé. Exemple de chemin d'accès au compilateur : drive:\path\to\visual\studio\VC\bin.
1. Copiez les binaires du compilateur et les bibliothèques standard sur un autre ordinateur. C'est-à-dire, copiez les dossiers suivants dans C:\Qt\msvc12rip :
2. Installez Windows SDK. Pour ceux qui ne le savent pas, c'est un ensemble d'en-têtes, de librairies et d'outils pour compiler des programmes Windows. Notez l'endroit où il est installé. Exemple de chemin : C:\Program Files (x86)\Windows Kits\8.1
3. Installez CMake et Qt creator (juste le creator, c'est à dire l'environnement, pas le Qt lui-même, pour gagner de la place).
4. Configurer un compilateur personnalisé dans Qt Creator. Lisez la suite pour savoir comment.
Configurer le compilateur pour 32 bits est assez simple.
4.1. Configurer le compilateur sous l'onglet Compilateurs dans les paramètres : Ajouter un compilateur personnalisé :
4.2. Sous l'onglet kits, j'ai ajouté un kit et je l'ai configuré comme ceci :
INCLUDE=C:\Program Files (x86)\Windows Kits\8.1\Include\um\;C:\Qt\msvc12rip\VC\include\
LIB=C:\Qt\msvc12rip\VC\lib\;C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86\
LIBPATH=C:\Qt\msvc12rip\VC\lib\;C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86\
PATH=C:\Qt\msvc12rip\VC\bin\;C:\Program Files (x86)\Windows Kits\8.1\bin\x86\;C:\Qt\git\bin\
Notez le chemin vers git.exe dans PATH. Il est facultatif, mais s'il n'est pas spécifié, l'information sur la version sera incomplète dans la rubrique A propos de FreeCAD.
C'est la partie environnement des paramètres qui m'a donné le plus de mal à configurer.
C'est un peu plus délicat que le compilateur 32 bits. Le principal problème est qu'il n'y a pas d'exécutable nmake dans C:\Qt\msvc12rip\VC\bin\x86_amd64 et nmake continue à utiliser le compilateur 32 bits. Pour contrer ce problème, créez un dossier spécial "C:\Qt\msvc12rip\VC\bin\x86_amd64_sa", où sont réunis mnake et le compilateur 64 bits. Lisez la suite pour obtenir des instructions étape par étape.
4.1. Dans C:\Qt\msvc12rip\VC\bin, créez un dossier nommé x86_amd64_sa. (sa signifie Stand-Alone, utilisez le nom que vous voulez).
4.2. Copiez le contenu du dossier C:\Qt\msvc12rip\C\bin dans le dossier x86_amd64_sa (vous avez maintenant un compilateur 32 bits).
4.3. copier le contenu du dossier x86_amd64 dans x86_amd64_sa, en remplaçant les fichiers dans le processus. Maintenant vous avez un compilateur 64bit avec nmake.
4.4. Configurer le compilateur sous l'onglet Compilateurs dans les paramètres : Ajouter un compilateur personnalisé :
4.5. Sous l'onglet kits, ajoutez un kit et configurez-le comme ceci :
INCLUDE=C:\Program Files (x86)\Windows Kits\8.1\include\shared\;C:\Program Files (x86)\Windows Kits\8.1\include\um\;C:\Qt\msvc12rip\VC\include
LIB=C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64\;C:\Qt\msvc12rip\VC\lib\amd64\
LIBPATH=C:\Program Files (x86)\Windows Kits\8.1\References\CommonConfiguration\Neutral\
PATH=C:\Qt\msvc12rip\VC\bin\x86_amd64_sa\;C:\Program Files (x86)\Windows Kits\8.1\bin\x64\;C:\Qt\git\bin\
Notez le chemin vers git.exe dans PATH. Il est facultatif, mais s'il n'est pas spécifié, l'information sur la version sera incomplète dans la rubrique A propos de FreeCAD.
Astuce : configurez une autre paire kit+compilateur pour utiliser jom au lieu de nmake, pour permettre la construction multicore. La configuration est identique à celle du 64 bits avec nmake, sauf que Make dans l'onglet compilateur doit pointer vers jom.exe. Exemple de chemin vers jom : C:\Qt\Qt542\Tools\QtCreator\bin\jom.exe (vous devriez pouvoir trouver jom là où votre Qt creator est installé).
Tout le reste est identique à la façon normale de compiler FreeCAD.
Conditions requises :
Lancez FreeCAD (CMakeLists.txt) avec Qt creator et vous serez inviter à lancer cmake. Lancez-le. CMake va construire un programme de test, pour voir si le compilateur fonctionne. Si le compilateur ne fonctionne pas, il affichera une erreur indiquant exactement cela et listant le résultat de la compilation. La sortie de la compilation devrait vous aider à identifier ce qui ne va pas. Voici une petite liste d'erreurs typiques :
Pour exécuter FreeCAD construit avec le type "Debug", les versions de débogage des bibliothèques redistribuables MSVC2013 (msvcp120d.dll, msvcr120d.dll) doivent être présentes quelque part accessible par PATH (dans tout le système, cette fois).
Vous pouvez obtenir ces dlls depuis l'autre ordinateur qui possède le Visual Studio dont vous avez récupéré le compilateur. Une autre solution consiste à extraire ces dlls directement de l'installateur de Visual Studio, ce qui est très facile :
Conditions requises :
L'idée est très simple : au lieu de copier des fichiers, créez des liens. Sous Windows, des liens symboliques sont disponibles à cet effet. Un lien fait apparaître le fichier lié à l'endroit où se trouve le lien, mais le fichier est en fait stocké ailleurs. Les liens peuvent être créés à l'aide de la commande batch mklink.
Comme il y a beaucoup trop de fichiers pour faire des liens manuellement, un script batch doit être utilisé. Voici un exemple d'un tel script :
links_libpack.bat:
@set libpackpath=C:\_vt\dev\PC\Qt\FreeCAD\libpack\active
@set builddir=%1
pushd %libpackpath%\bin
for %%i in (*) do mklink "%builddir%\bin\%%i" "%libpackpath%\bin\%%i"
for /D %%s in (*) do mklink /d "%builddir%\bin\%%s" "%libpackpath%\bin\%%s"
popd
pause
La première boucle for crée des liens vers des fichiers, la seconde boucle - des liens vers des dossiers.
Vous devrez modifier le chemin d'accès à libpack pour qu'il corresponde au vôtre. Utilisez des chemins absolus. Ensuite, alimentez le chemin du dossier de build de FreeCAD (chemin complet!) au script comme un argument.
Ce programme doit être exécuté avec des privilèges d'administrateur (ou, vous pouvez autoriser les utilisateurs à utiliser mklink dans les paramètres de la politique de sécurité locale de Windows). Le batch peut échouer, s'il y a des espaces dans les chemins (il peut fonctionner, mais ce n'est pas testé). Astuce : créez un raccourci vers links_libpack.bat, configurez-le pour qu'il fonctionne en tant qu'administrateur (dans les propriétés du raccourci), et faites glisser le dossier de construction sur le raccourci.